# ДЗ 
Требуется реализовать методы в `TopX.cs`, и проверить их тестами `TopXTest.cs`

*Запуск тестов:* 
**Visual Studio**
Откройте обозреватель тестов, выбрав Тест > Обозреватель тестов в верхней строке меню (или нажмите клавиши CTRL + E, T).
Запустите модульные тесты, нажав Запустить все (или нажмите клавиши CTRL + R, V).

### 1. Задача на аккуратность
★★★☆☆

Код нашего алгоритма не проверяет входные данные и может завершиться с ошибкой если ему передать *“что-то не то”* (что же там может быть “не то” ?).
Перепишите код так, чтобы он проверял аргументы, и в случае некорректных данных кидал exception
```C#
throw new Exception();
```

### 2. Со дна постучали
★★☆☆☆

Создайте по аналогии функцию, которая будет находить X самых маленьких элементов массива `FindBottomElements`.

```C#
public static int[] FindBottomElements(int[] inputArray, int numberOfElements)
```

### 3. Повторение — мать учения

Проверьте, как работает алгоритм на вот таких данных:

```C#
FindTopElementsWithRepeatingTest(new int[]{100,100,100,55,8}, 3)
```
Такой код должен вернуть `{100, 100, 100}`.
Исправьте код, если он выдает неверный результат в таких случаях.

Изменится ли время работы алгоритма?

>> Время работы алгоритмя (по крайней мере моего) увеличится, т.к. раньше можно было пропускать дубли, а теперь нужно смещать элементы массива результатов при встрече каждого из дублей.